package org.amigo.online.consumer.advertisement.feignService;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.amigo.online.common.core.response.Response;
import com.amigo.online.common.param.dto.adv.AdvClickDto;
import com.amigo.online.common.param.dto.adv.AdvHomeDto;
import com.amigo.online.common.param.dto.adv.AdvLookDto;
import com.amigo.online.common.param.dto.adv.AdvNearbyDto;
import com.amigo.online.common.param.dto.adv.AdvRecommendDto;
import com.amigo.online.common.param.dto.adv.AdvTantanDto;

@FeignClient(name = "amigo-online-provider-advertisement")
public interface AdvFeignService {
	
	@RequestMapping(value = "/v1/adv/list/tantan", method = RequestMethod.POST)
	ResponseEntity<Response> getTantanAdvSource(AdvTantanDto advTantanDto);

	@RequestMapping(value = "/v1/adv/list/recommended", method = RequestMethod.POST)
	ResponseEntity<Response> getRecommendVideoAdvSource(AdvRecommendDto advRecommendDto);

	@RequestMapping(value = "/v1/adv/list/home", method = RequestMethod.POST)
	ResponseEntity<Response> getHomeAdvSource(AdvHomeDto advHomeDto);

	@RequestMapping(value = "/v1/adv/list/nearby", method = RequestMethod.POST)
	ResponseEntity<Response> getNearbyAdvSource(AdvNearbyDto advNearbyDto);

	@RequestMapping(value = "/v1/adv/look/recommended", method = RequestMethod.POST)
	ResponseEntity<Response> recordLookRecommendVideoAdv(AdvLookDto advLookDto);

	@RequestMapping(value = "/v1/adv/look/nearby", method = RequestMethod.POST)
	ResponseEntity<Response> recordLookNearbyAdv(AdvLookDto advLookDto);

	@RequestMapping(value = "/v1/adv/look/home", method = RequestMethod.POST)
	ResponseEntity<Response> recordLookHomeAdv(AdvLookDto advLookDto);

	@RequestMapping(value = "/v1/adv/look/tantan", method = RequestMethod.POST)
	ResponseEntity<Response> recordLookTantanAdv(AdvLookDto advLookDto);

	@RequestMapping(value = "/v1/adv/click/home", method = RequestMethod.POST)
	ResponseEntity<Response> recordClickHomeAdv(AdvClickDto advClickDto);

	@RequestMapping(value = "/v1/adv/click/nearby", method = RequestMethod.POST)
	ResponseEntity<Response> recordClickNearbyAdv(AdvClickDto advClickDto);

	@RequestMapping(value = "/v1/adv/click/tantan", method = RequestMethod.POST)
	ResponseEntity<Response> recordClickTantanAdv(AdvClickDto advClickDto);
	
	@RequestMapping(value = "/v1/adv/click/recommended", method = RequestMethod.POST)
	ResponseEntity<Response> recordClickRecommendVideoAdv(AdvClickDto advClickDto);

	@RequestMapping(value = "/v1/adv/areaInfo/{countryId}", method = RequestMethod.GET)
	ResponseEntity<Response> getAdvAreaInfo(@PathVariable("countryId") Long countryId);

}
